package com.basic.business.unIndicators.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.basic.common.core.domain.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import cn.idev.excel.annotation.ExcelProperty;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import com.basic.common.utils.StringUtils;
import com.basic.common.utils.uuid.ULID;

/**
 * 无界指标数据对象 t_unbounded_indicators
 *
 * @author zhaoxy_jn@163.com
 * @date 2025-02-11
 */
@Getter
@Setter
@ExcelIgnoreUnannotated
public class TUnboundedIndicators extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private String id;

    /** 文件id */
    @ExcelProperty(value = "文件id")
    private String fileId;

    /** 店铺id */
    @ExcelProperty(value = "店铺id")
    private String storeId;

    /** 统计日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelProperty(value = "统计日期")
    private Date statDate;

    /** 场景id */
    @ExcelProperty(value = "场景id")
    private Integer sceneId;

    /** 场景名称 */
    @ExcelProperty(value = "场景名称")
    private String sceneName;

    /** 原二级场景id */
    @ExcelProperty(value = "原二级场景id")
    private Integer originalSceneId;

    /** 原二级场景名称 */
    @ExcelProperty(value = "原二级场景名称")
    private String originalSceneName;

    /** 计划id */
    @ExcelProperty(value = "计划id")
    private String planId;

    /** 计划名称 */
    @ExcelProperty(value = "计划名称")
    private String planName;

    /** 单元id */
    @ExcelProperty(value = "单元id")
    private String unitId;

    /** 单元名称 */
    @ExcelProperty(value = "单元名称")
    private String unitName;

    /** 主体id */
    @ExcelProperty(value = "主体id")
    private String mainBodyId;

    /** 主体类型 */
    @ExcelProperty(value = "主体类型")
    private String mainBodyType;

    /** 主体名称 */
    @ExcelProperty(value = "主体名称")
    private String mainBodyName;

    /** 展现量 */
    @ExcelProperty(value = "展现量")
    private Integer impressions;

    /** 点击量 */
    @ExcelProperty(value = "点击量")
    private Integer clickNumber;

    /** 花费 */
    @ExcelProperty(value = "花费")
    private BigDecimal spend;

    /** 点击率 */
    @ExcelProperty(value = "点击率")
    private String clickRatio;

    /** 平均点击花费 */
    @ExcelProperty(value = "平均点击花费")
    private BigDecimal averageClickSpend;

    /** 千次展现花费 */
    @ExcelProperty(value = "千次展现花费")
    private BigDecimal thousandShowSpend;

    /** 总预售成交额 */
    @ExcelProperty(value = "总预售成交额")
    private BigDecimal totalPresaleAmount;

    /** 总预售成交笔数 */
    @ExcelProperty(value = "总预售成交笔数")
    private Integer totalPresaleNumber;

    /** 直接预售成交额 */
    @ExcelProperty(value = "直接预售成交额")
    private BigDecimal directPresaleAmount;

    /** 直接预售成交笔数 */
    @ExcelProperty(value = "直接预售成交笔数")
    private Integer directPresaleNumber;

    /** 间接预售成交额 */
    @ExcelProperty(value = "间接预售成交额")
    private BigDecimal indirectPresaleAmount;

    /** 间接预售成交笔数 */
    @ExcelProperty(value = "间接预售成交笔数")
    private Integer indirectPresaleNumber;

    /** 直接成交金额 */
    @ExcelProperty(value = "直接成交金额")
    private BigDecimal directAmount;

    /** 间接成交金额 */
    @ExcelProperty(value = "间接成交金额")
    private BigDecimal indirectAmount;

    /** 总成交金额 */
    @ExcelProperty(value = "总成交金额")
    private BigDecimal totalAmount;

    /** 总成交笔数 */
    @ExcelProperty(value = "总成交笔数")
    private Integer totalNumber;

    /** 直接成交笔数 */
    @ExcelProperty(value = "直接成交笔数")
    private Integer directNumber;

    /** 间接成交笔数 */
    @ExcelProperty(value = "间接成交笔数")
    private Integer indirectNumber;

    /** 点击转化率 */
    @ExcelProperty(value = "点击转化率")
    private String clickConversionRate;

    /** 投入产出比 */
    @ExcelProperty(value = "投入产出比")
    private Double inputOutputRatio;

    /** 总成交成本 */
    @ExcelProperty(value = "总成交成本")
    private BigDecimal totalTransactionCost;

    /** 总购物车数 */
    @ExcelProperty(value = "总购物车数")
    private Integer totalShopCartNumber;

    /** 直接购物车数 */
    @ExcelProperty(value = "直接购物车数")
    private Integer directShopCartNumber;

    /** 间接购物车数 */
    @ExcelProperty(value = "间接购物车数")
    private Integer indirectShopCartNumber;

    /** 加购率 */
    @ExcelProperty(value = "加购率")
    private String addPurchaseRatio;

    /** 收藏宝贝数 */
    @ExcelProperty(value = "收藏宝贝数")
    private Integer collectGoodsNumber;

    /** 收藏店铺数 */
    @ExcelProperty(value = "收藏店铺数")
    private Integer collectStoreNumber;

    /** 店铺收藏成本 */
    @ExcelProperty(value = "店铺收藏成本")
    private BigDecimal storeCollectCost;

    /** 总收藏加购数 */
    @ExcelProperty(value = "总收藏加购数")
    private Integer totalCollectAddNumber;

    /** 总收藏加购成本 */
    @ExcelProperty(value = "总收藏加购成本")
    private BigDecimal totalCollectAddCost;

    /** 宝贝收藏加购数 */
    @ExcelProperty(value = "宝贝收藏加购数")
    private Integer goodsCollectAddNumber;

    /** 宝贝收藏加购成本 */
    @ExcelProperty(value = "宝贝收藏加购成本")
    private BigDecimal goodsCollectAddCost;

    /** 总收藏数 */
    @ExcelProperty(value = "总收藏数")
    private Integer totalCollectNumber;

    /** 宝贝收藏成本 */
    @ExcelProperty(value = "宝贝收藏成本")
    private BigDecimal goodsCollectCost;

    /** 宝贝收藏率 */
    @ExcelProperty(value = "宝贝收藏率")
    private Double goodsCollectRatio;

    /** 加购成本 */
    @ExcelProperty(value = "加购成本")
    private BigDecimal addPurchaseCost;

    /** 拍下订单笔数 */
    @ExcelProperty(value = "拍下订单笔数")
    private Integer orderNumber;

    /** 拍下订单金额 */
    @ExcelProperty(value = "拍下订单金额")
    private BigDecimal orderAmount;

    /** 直接收藏宝贝数 */
    @ExcelProperty(value = "直接收藏宝贝数")
    private Integer directCollectGoodsNumber;

    /** 间接收藏宝贝数 */
    @ExcelProperty(value = "间接收藏宝贝数")
    private Integer indirectCollectGoodsNumber;

    /** 优惠券领取量 */
    @ExcelProperty(value = "优惠券领取量")
    private Integer couponReceiveNumber;

    /** 购物金充值笔数 */
    @ExcelProperty(value = "购物金充值笔数")
    private Integer shopGoldRechargeNumber;

    /** 购物金充值金额 */
    @ExcelProperty(value = "购物金充值金额")
    private BigDecimal shopGoldRechargeAmount;

    /** 旺旺咨询量 */
    @ExcelProperty(value = "旺旺咨询量")
    private Integer wangConsultNumber;

    /** 引导访问量 */
    @ExcelProperty(value = "引导访问量")
    private Integer guideVisitNumber;

    /** 引导访问人数 */
    @ExcelProperty(value = "引导访问人数")
    private Integer guideVisitPeopleNumber;

    /** 引导访问潜客数 */
    @ExcelProperty(value = "引导访问潜客数")
    private Integer guideVisitPotentialNumber;

    /** 引导访问潜客占比 */
    @ExcelProperty(value = "引导访问潜客占比")
    private String guideVisitPotentialRatio;

    /** 入会率 */
    @ExcelProperty(value = "入会率")
    private Double joinRate;

    /** 入会量 */
    @ExcelProperty(value = "入会量")
    private Integer joinNumber;

    /** 引导访问率 */
    @ExcelProperty(value = "引导访问率")
    private String guideVisitRatio;

    /** 深度访问量 */
    @ExcelProperty(value = "深度访问量")
    private Integer depthVisitNumber;

    /** 平均访问页面数 */
    @ExcelProperty(value = "平均访问页面数")
    private Integer averageVisitPageNumber;

    /** 成交新客数 */
    @ExcelProperty(value = "成交新客数")
    private Integer dealNewOrderNumber;

    /** 成交新客占比 */
    @ExcelProperty(value = "成交新客占比")
    private String dealNewOrderTatio;

    /** 会员首购人数 */
    @ExcelProperty(value = "会员首购人数")
    private Integer vipFirstBuyNumber;

    /** 会员成交金额 */
    @ExcelProperty(value = "会员成交金额")
    private BigDecimal vipDealAmount;

    /** 会员成交笔数 */
    @ExcelProperty(value = "会员成交笔数")
    private Integer vipDealNumber;

    /** 成交人数 */
    @ExcelProperty(value = "成交人数")
    private Integer dealPeopleNumber;

    /** 人均成交笔数 */
    @ExcelProperty(value = "人均成交笔数")
    private Integer perCapitaDealNumber;

    /** 人均成交金额 */
    @ExcelProperty(value = "人均成交金额")
    private BigDecimal perCapitaDealAmount;

    /** 曝光新客数 */
    @ExcelProperty(value = "曝光新客数")
    private Integer exposureNewPeopleNumber;

    /** 进店新客数 */
    @ExcelProperty(value = "进店新客数")
    private Integer enterNewPeopleNumber;

    /** 加购新客数 */
    @ExcelProperty(value = "加购新客数")
    private Integer addPurchaseNewPeopleNumber;

    /** 收藏新客数 */
    @ExcelProperty(value = "收藏新客数")
    private Integer collectNewPeopleNumber;

    /** 新客支付金额 */
    @ExcelProperty(value = "新客支付金额")
    private BigDecimal newPeoplePayAmount;

    /** 新客点击率 */
    @ExcelProperty(value = "新客点击率")
    private String newPeopleClickRatio;

    /** 新客成交转化率 */
    @ExcelProperty(value = "新客成交转化率")
    private String newPeopleDealConversionRate;

    /** 自然流量转化金额 */
    @ExcelProperty(value = "自然流量转化金额")
    private BigDecimal natureConversionAmount;

    /** 自然流量曝光量 */
    @ExcelProperty(value = "自然流量曝光量")
    private Integer natureExposure;

    /** 状态 正常：NORMAL 删除：DELETED 锁定：LOCKED */
    @ExcelProperty(value = "状态 正常：NORMAL 删除：DELETED 锁定：LOCKED")
    private String status;

    /** 用户id */
    private Long userId;

    /** 部门id */
    private Long deptId;

    public void setId(String id) {
        this.id = StringUtils.isNotEmpty(id) ? id : ULID.getId();
    }
}
